
#include <iostream>
#include <string>
#include <sstream>
using namespace std;

int main() {
    string s;
    getline(cin, s);

    while(s.size() >= 4)
    {
        s.erase(0, 4);
        if(s.size() < 4)
            break;

        string length = s.substr(0, 4);
        swap(length[0], length[2]);
        swap(length[1], length[3]);

        int len;
        stringstream ss;
        ss << std::hex << length;
        ss >> len;

        // cout << len << endl;
        int bodyLen = len - 2;  // 减去协议号的两个字节，剩下的就都是消息体

        s.erase(0, 4);  // 去掉协议长度
        if(s.size() < 4)
            break;

        string ret;
        // 解析协议号
        string protocol = s.substr(0, 4);
        swap(protocol[0], protocol[2]);
        swap(protocol[1], protocol[3]);

        int protocol_no;
        ss.clear();
        ss << std::hex << protocol;
        ss >> protocol_no;
        ret += to_string(protocol_no) + " ";

        s.erase(0, 4);  // 去掉协议号

        // body不足，则无法解析
        if(s.size() < bodyLen * 2)
            break;

        string body = s.substr(0, bodyLen * 2);
        // cout << body << endl;
        for(int i = 0; i < bodyLen * 2; i += 2)
        {
            string t;
            // cout << body[i] << ":" << body[i + 1] << endl;
            t += body[i];
            t += body[i + 1];
            // cout << t << endl;

            // 解析每个字节
            int num;
            stringstream ss;
            ss << std::hex << t;
            ss >> num;

            // cout << num << endl;
            ret += ((char)num);
        }

        s.erase(0, bodyLen * 2);
        cout << ret << endl;
    }
    return 0;
}
